package com.gugee.ins.common.dal.service.brand;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gugee.ins.common.dto.InsBrandDto;
import com.gugee.ins.common.model.mysql.blogger.InsBloggerMain;
import com.gugee.ins.common.model.mysql.brand.InsBrand;
import com.gugee.ins.common.model.mysql.brand.InsRelBrandBlogger;
import com.gugee.ins.common.model.mysql.brand.InsRelBrandMedia;
import com.gugee.ins.data.common.msg.InsBrandMessage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * InsBrandDao
 * @author Huangxin
 */
public interface InsBrandDao extends IService<InsBrand> {
    /**
     * 根据bid更新分类
     * @param bid
     */
    void updateCategory(int bid);

    /**
     * 获取最大id
     * @return
     */
    int getMaxId();

    /**
     * 获取定时分页信息
     * @param startId
     * @param endId
     * @param limitTime
     * @return
     */
    List<InsBrandMessage> findInsAnalysisBrandCategoryMessageByPages(int startId,int endId,long limitTime);

    /**
     * 获取打点定时分页信息
     * @param startId
     * @param endId
     * @return
     */
    List<InsRelBrandBlogger> findInsMarkBrandMessageByPages(int startId, int endId);

    /**
     * 获取打点定时分页信息
     * @param startId
     * @param endId
     * @return
     */
    List<InsBrandDto> findInsBrandDtoByPages(int startId, int endId);


    /**
     * 获取品牌下的所有博主
     * @param bid
     * @return
     */
    List<InsBloggerMain> getBrandBloggerByBid(@Param("bid") int bid);


    /**
     * 获取@品牌下博主的帖子
     * @param usernames
     * @param bid
     * @param beginTime
     * @param endTime
     * @return
     */
    List<InsRelBrandMedia> getMediaForCaptionTagger(List<String> usernames,int bid,long beginTime,long endTime);

    /**
     * 获取标记品牌下博主的帖子
     * @param uIds
     * @param bid
     * @param beginTime
     * @param endTime
     * @return
     */
    List<InsRelBrandMedia> getMediaForTaggerUser(List<Long> uIds,int bid,long beginTime,long endTime);


    /**
     * 获取品牌下博主赞助的帖子
     * @param uIds
     * @param bid
     * @param beginTime
     * @param endTime
     * @return
     */
    List<InsRelBrandMedia> getMediaForSponsorUser(List<Long> uIds,int bid,long beginTime,long endTime);


    /**
     * 获取品牌下的博主下的商品被标记的帖子
     * @param uIds
     * @param bid
     * @param beginTime
     * @param endTime
     * @return
     */
    List<InsRelBrandMedia> getMediaForProduct(List<Long> uIds, int bid, long beginTime, long endTime);


    /**
     * 获取品牌下的博主下的帖子
     * @param uIds
     * @param bid
     * @param beginTime
     * @param endTime
     * @return
     */
    List<InsRelBrandMedia> getMediaForBlogger(List<Long> uIds,int bid,long beginTime,long endTime);
}
